{
  /*
    学习目标：泛型约束-小结
    关键字：extends为泛型添加关键字
    语法：
      1. 约束语法：<T extends Xxxx>
      2.可以有多个泛型变量：  <T , K, L>  
  */

  interface BB {
    age: number;
  }

  interface IAA extends BB {
    name: string;
  }

  // type 没有继承
  type TAA = {
    name: 123;
  };
  // type TBB = {} extends TAA

  // 这说明extends是继承吗？ 就叫约束，可以理解为：逻辑且
  function test<T extends TAA>(data: T) {
    return data.name;
  }
}
